﻿// ChaosKitInterface code
// Author: Scientio LLC. http://www.scientio.com
// The web service to which this code refers is copyright 2009 Scientio LLC, all rights reserved.
using System;
using System.Runtime.Serialization;
using System.Collections.Generic;

namespace Scientio.WebServices
{
    /// <summary>
    /// The results of a ChaosKit analysis of a time series
    /// </summary>
    [DataContractAttribute]
    public class AnalysisResults
    {
        /// <summary>
        /// Name of the series
        /// </summary>
        [DataMemberAttribute]
        public string TimeSeries { get; set; }
        /// <summary>
        /// Found optimum embedding dimension
        /// </summary>
        [DataMemberAttribute]
        public int EmbeddingDimension { get; set; }
        /// <summary>
        /// Found optimum embedding separation
        /// </summary>
        [DataMemberAttribute]
        public int EmbeddingSeparation { get; set; }
        /// <summary>
        /// Measured Hurst exponent
        /// </summary>
        [DataMemberAttribute]
        public double HurstExponent { get; set; }
        /// <summary>
        /// Measured Lyapunov exponent
        /// </summary>
        [DataMemberAttribute]
        public double LyapunovExponent { get; set; }
        /// <summary>
        /// Measured Fractal Dimension
        /// </summary>
        [DataMemberAttribute]
        public double FractalDimension { get; set; }
    }

    /// <summary>
    /// Represents a single predicted value
    /// </summary>
    [DataContractAttribute]
    public class PredictionResult
    {
        /// <summary>
        /// ID of time series
        /// </summary>
        [DataMemberAttribute]
        public string TimeSeries { get; set; }
        /// <summary>
        /// Predicted value
        /// </summary>
        [DataMemberAttribute]
        public double Value { get; set; }
        /// <summary>
        /// Time of the prediction
        /// </summary>
        [DataMemberAttribute]
        public DateTime TimeStamp { get; set; }
    }

    /// <summary>
    /// Represents information about stored time series
    /// </summary>
    [DataContractAttribute]
    public class SeriesInfo
    {
        /// <summary>
        /// Name of theseries
        /// </summary>
        [DataMemberAttribute]
        public string Name { get; set; }
        /// <summary>
        /// ID of the series used in all web service methods.
        /// </summary>
        [DataMemberAttribute]
        public string SeriesId { get; set; }
        /// <summary>
        /// The sample time set for the series.
        /// </summary>
        [DataMemberAttribute]
        public string SampleTime { get; set; }
        /// <summary>
        /// The id of the trading times record to be used, or an empty string for none.
        /// </summary>
        [DataMemberAttribute]
        public string TradingTimes { get; set; }
        /// <summary>
        /// True if differencing set.
        /// </summary>
        [DataMemberAttribute]
        public bool Differencing { get; set; }
        /// <summary>
        /// The size of the dead period, or an empty string if not set.
        /// </summary>
        [DataMemberAttribute]
        public string DeadPeriod { get; set; }
        /// <summary>
        /// If "interpolate" then interpolation is set, otherwise blank.
        /// </summary>
        [DataMemberAttribute]
        public string Interpolation { get; set; }

    }
    [DataContractAttribute]
    public class SentimentResponse
    {
        [DataMemberAttribute]
        public string Sentiment { get; set; }
        [DataMemberAttribute]
        public double Confidence { get; set; }
    }

}
